//创建用户相关的小仓库
import axios from 'axios';
import { defineStore } from 'pinia'
import { ref } from 'vue'
import { useRouter } from 'vue-router'
//引入接口
//import { reqLogin } from '../../apis/user';
//引入数据类型
import type { loginFormData } from '../../apis/user/type';
//引入路由（常量路由）: 我为什么不能直接用路由？
/*
引入常量路由是为了每一次使用时不用进行深度调用，放在store里是为了方便异步请求
*/
//import { constantRoute } from '../../router/routes'

let token = ref()
let router = useRouter()
//创建用户小仓库
let useUserStore = defineStore('User', {
    //存储数据
    state() {
        return {
            user: {
                username: '',
                password: ''
            },
            //menuRoutes: constantRoute  //仓库存储菜单需要生成的路由数组
        }
    },
    //处理异步||逻辑
    actions: {
        //用户登录的方法
        userLogin(data: loginFormData) {
            //登录请求
            //let result = await reqLogin(data)
            axios({
                url: 'http://localhost:3000/user',
                method: 'POST',
                data: {
                    username: this.user.username,
                    password: this.user.password
                }
            }).then((response) => {
                console.log(response)
                localStorage.setItem('user-token', token.value)
                if (token.value == localStorage.getItem('user-token')) {
                    router.push('/home')
                }
                else {
                    alert("账号或密码错误")
                }
            })
        }
    }
})

//对外暴露小仓库
export default useUserStore;

